home *** CD-ROM | disk | FTP | other *** search
- // ===========================================================================
- // AppleFunctionIndex.cp ©1996-1998 Metrowerks Inc. All rights reserved.
- // ===========================================================================
- // Example interface using the LHTTPConnection Class
-
- #include <stdio.h>
- #include <string.h>
- #include <Marklib.h>
-
- #include <UInternet.h>
- #include <LMailMessage.h>
- #include <LURL.h>
- #include <UInternetConfig.h>
- #include <UModalDialogs.h>
-
- #include "AppleFunctionIndex.h"
-
-
- // ===========================================================================
-
- #pragma mark -
- #pragma mark ••• AppleFunctionIndexThread •••
-
- void AppleFunctionIndexThread::Start (char *funcName)
- {
- AppleFunctionIndexThread *thread = new AppleFunctionIndexThread (funcName);
-
- thread->Resume();
- }
-
- AppleFunctionIndexThread::AppleFunctionIndexThread(char *funcName)
- : LThread(false, thread_DefaultStack, threadOption_Default, nil)
- {
- strcpy (fFuncName, funcName);
- }
-
- AppleFunctionIndexThread::~AppleFunctionIndexThread()
- {
- }
-
- void AppleFunctionIndexThread::ListenToMessage(MessageT inMessage, void *ioParam)
- {
- inMessage = inMessage;
- ioParam = ioParam;
- }
-
-
-
- void *AppleFunctionIndexThread::Run(void)
- {
- this->MakeURL(fFuncName, fNewURL);
-
- OSStatus icErr;
- ICInstance icInst;
- long selStart,
- selEnd;
-
- icErr = ICStart(&icInst, 'ALTV');
- #if !PP_Target_Carbon
- icErr = ICGeneralFindConfigFile(icInst, true, false, 0, NULL);
- #endif
- selStart = 0;
- selEnd = strlen(fNewURL);
- icErr = ICLaunchURL(icInst, NULL, (Ptr) fNewURL, strlen(fNewURL), &selStart, &selEnd);
- icErr = ICStop(icInst);
-
- return nil;
- }
-
- long AppleFunctionIndexThread::MakeURL (char *funcName, char *newURL)
- {
- char url[1024], urlTemplate[1024];
- unsigned char *c;
- Handle h = NULL;
-
- strcpy (newURL, funcName);
-
- h = Get1Resource ('STR ', 5000);
- if (ResError()) return -1;
-
- HLock (h);
- c = * (unsigned char **) h;
- memcpy (urlTemplate, c+1, c[0]);
- urlTemplate[c[0]] = 0;
- ReleaseResource (h);
-
- // Get the real URL
- sprintf (newURL, urlTemplate, funcName);
-
- return 0;
- }
-